package com.sky.controller.test1;

public class Test09 {
    //属于类,与类一起加载,自动执行一次
    static {

    }

    public static void main(String[] args) {
        //代码块:静态代码块,实例代码块
        //内部类
        new Test09().new Inner().test();
        new OuterClass.StaticInnerClass().display();

    }

    //成员内部类
    class Inner {

        public void test() {
            System.out.println(111);
        }
    }

    //静态内部类
    public static class OuterClass {
        // 外部类的静态变量
        public static int outerStaticVar = 10;

        // 静态内部类
        public static class StaticInnerClass {
            // 静态内部类的方法
            public void display() {
                System.out.println("静态内部类访问外部类的静态变量: " + outerStaticVar);
                //局部内部类
                class LocalInnerClass {
                    public void print() {
                        System.out.println("局部内部类访问外部类的静态变量: " + outerStaticVar);
                    }
                }
            }
        }


    }

    //匿名内部类
    Animals a = new Animals() {
        @Override
        public void cat() {

        }
    };
}

abstract class Animals {
    public abstract void cat();
}
